import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
import javax.swing.*;
import java.util.*;

/*In this class, there is information about the calamiteit
 * @Author Jonathan van Es
 */
public class calamiteit extends Actor
{
    String[] watList = {"brand","een overstroming","gasexplosie"};
    String[] waarList = {"Hoofdstraat","Kalverstraat"};
    int hoeveelList; 
    private int zwaarte;
    private boolean isactief = false;
    private Bar bar;
    private World world;
    private MiniGame miniGame;
    private int gebruiktebrandweermannen;
    private int seconds = 0;
    private long timeStarted;
    private Desk desk;
    private Office OfficeWorld;
    private int addScore = 0;
    public int hoeveelheid = 0;
    private int gestuurdebrandweermannen;

    public int getzwaarte()
    {
        return zwaarte;
    }

    public void act() 
    {  
        if(gebruiktebrandweermannen != 0)
        {
            long currentTime = System.currentTimeMillis();
            long elapsedTime = currentTime - timeStarted;
            if(elapsedTime / 1000 >= seconds)
            {
                hoeveelheid = hoeveelheid - gebruiktebrandweermannen;

                if(hoeveelheid <= 0) 
                    timeStarted = currentTime;

                bar.add(gebruiktebrandweermannen);

                getWorld().removeObject(this);
                ((MiniGame)world).addScore(addScore);
                desk.reset();

            }
        }

    }    

    public calamiteit(Bar bar, World world, Desk desk)
    {
        this.desk = desk;
        this.world = world;
        this.bar = bar;        
    }

    public void popup()
    {
        //In the popup there is information witch will pop up when the player takes the telephone
        int watLength = watList.length;
        int waarLength = waarList.length;

        int rand1 = (int) (Math.random() * watLength);
        int rand2 = (int) (Math.random() * waarLength);   

        String wat = ("Er is " +watList[rand1]);
        String waar = ("in de " +waarList[rand2]);

        int aantalpersonen = Greenfoot.getRandomNumber(9) + 1;
        zwaarte = aantalpersonen * 1000;
        hoeveelheid = zwaarte;
        addScore = zwaarte / 10;
        String hoeveel = (". Er zijn " +  aantalpersonen);
        String nood = " mensen in nood.";

        String phrase = wat + waar + hoeveel + nood;

        JOptionPane.showMessageDialog(null, "" +phrase);
        String brandweermannen;
        do
        {
            brandweermannen = JOptionPane.showInputDialog(null, "Hoeveel brandweermannen wilt u sturen?");
        }while(!tryparseint(brandweermannen) || bar.value <= Integer.parseInt(brandweermannen)  );

        isactief = true;
        JOptionPane.showMessageDialog(null, "Zoveel brandweermannen zijn er onderweg: "+brandweermannen);

        gebruiktebrandweermannen = Integer.parseInt(brandweermannen);
        seconds = gebruiktebrandweermannen;

        bar.subtract(gebruiktebrandweermannen);
        int x = 600;

        for(int i = 0; i < gebruiktebrandweermannen; i++)
        {
            brandweerman bwm = new brandweerman();
            x = x -50;
            world.addObject(bwm , x , 30);

        } 

        timeStarted  = System.currentTimeMillis(); 
    }

    public boolean tryparseint(String value)
    {
        try{
            Integer.parseInt(value);
            return true;
        }catch(NumberFormatException nfe)
        {
            return false;
        }
    }

    public boolean isactief()
    {
        return isactief;
    }
}